import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    //cartList:放置购物车数据
    // 解决vuex刷新数据丢失问题，本地存储保存一份
    cartList: JSON.parse(localStorage.getItem("cartList")) || [],
  },
  getters: {},
  mutations: {
    //   第一个参数是state里面的数据，第二参数是接收传过来的数据
    addCart(state, payload) {
      let isexit = true; // 判断商品是否存在
      //循环cartList购物车数据
      state.cartList.forEach((goods) => {
        //   判断加入的是否是同一件商品
        if (goods.id === payload.id) {
          goods.count++; //判断商品存在，数量就+1
          isexit = false;
          localStorage.setItem("cartList", JSON.stringify(state.cartList));
        }
      });
      if (isexit) {
        let goodsDate = payload; //设置一个新的变量接收传过来的数据
        Vue.set(goodsDate, "count", 1); //添加以个数量属性
        state.cartList.push(goodsDate); //向购物车添加数据
        // 将数据保存到localStorage里 本地存储一份
        localStorage.setItem("cartList", JSON.stringify(state.cartList));
      }
      console.log(state.cartList);
    },
  },
  actions: {},
  modules: {},
});
